package com.yehongyu.mytools.ui.applet;

//: AutoEvent.java
//Alternatives to action()
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Event;
import java.awt.FontMetrics;
import java.awt.Graphics;
import java.awt.TextField;


class MyButton extends Canvas {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	AutoEvent parent;

	Color color;

	String label;

	MyButton(AutoEvent parent, Color color, String label) {
		this.label = label;
		this.parent = parent;
		this.color = color;
	}

	public void paint(Graphics g) {
		g.setColor(color);
		int rnd = 30;
		g.fillRoundRect(0, 0, getSize().width, getSize().height, rnd, rnd);
		g.setColor(Color.black);
		g.drawRoundRect(0, 0, getSize().width, getSize().height, rnd, rnd);
		FontMetrics fm = g.getFontMetrics();
		int width = fm.stringWidth(label);
		int height = fm.getHeight();
		int ascent = fm.getAscent();
		int leading = fm.getLeading();
		int horizMargin = (getSize().width - width) / 2;
		int verMargin = (getSize().height - height) / 2;
		g.setColor(Color.white);
		g.drawString(label, horizMargin, verMargin + ascent + leading);
	}

	public boolean keyDown(Event evt, int key) {
		TextField t = (TextField) parent.h.get("keyDown");
		t.setText(evt.toString());
		return true;
	}

	public boolean keyUp(Event evt, int key) {
		TextField t = (TextField) parent.h.get("keyUp");
		t.setText(evt.toString());
		return true;
	}

	public boolean lostFocus(Event evt, Object w) {
		TextField t = (TextField) parent.h.get("lostFocus");
		t.setText(evt.toString());
		return true;
	}

	public boolean gotFocus(Event evt, Object w) {
		TextField t = (TextField) parent.h.get("gotFocus");
		t.setText(evt.toString());
		return true;
	}

	public boolean mouseDown(Event evt, int x, int y) {
		TextField t = (TextField) parent.h.get("mouseDown");
		t.setText(evt.toString());
		return true;
	}

	public boolean mouseDrag(Event evt, int x, int y) {
		TextField t = (TextField) parent.h.get("mouseDrag");
		t.setText(evt.toString());
		return true;
	}

	public boolean mouseEnter(Event evt, int x, int y) {
		TextField t = (TextField) parent.h.get("mouseEnter");
		t.setText(evt.toString());
		return true;
	}

	public boolean mouseExit(Event evt, int x, int y) {
		TextField t = (TextField) parent.h.get("mouseExit");
		t.setText(evt.toString());
		return true;
	}

	public boolean mouseMove(Event evt, int x, int y) {
		TextField t = (TextField) parent.h.get("mouseMove");
		t.setText(evt.toString());
		return true;
	}

	public boolean mouseUp(Event evt, int x, int y) {
		TextField t = (TextField) parent.h.get("mouseUp");
		t.setText(evt.toString());
		return true;
	}
}
